// 专门处理权限路由的模块
import { constantRoutes,asyncRoutes } from "@/router/index";
const state = {
  routes: constantRoutes   //路由表 表示当前用户所拥有的所有路由的数组
}
const mutations = {
  setRoutes(state,newRouters){
    state.routes = [...constantRoutes,...newRouters]
  }
}
const actions = {
  // 筛选权限路由
  // 第二个参数为当前用户所拥有的菜单权限
  filterRoutes(context,menus){ 
    const routes = []
    menus.forEach(key => {
      // item就是权限的标识
      // asyncRoutes存储的是所有的动态路由
      // 去asyncRoutes查找里面的name属性menus里面有没有包含这个标识
      routes.push(...asyncRoutes.filter(item => item.name === key))
    })
    // 修改state里面的routes  把当前筛选出来的标识通过mutations赋值给它
    context.commit('setRoutes',routes)
    return routes
  }
}
export default{
  namespaced: true,
  state,
  mutations,
  actions
}